pub fn dp_rec_mc(amount: u32) -> u32 {
    // 从最高值开始，使用最多当前面额，剩余考虑更小面额
    let mut result: u32 = 0;
    let mut a = amount;
    let val: Vec<u32> = vec![100, 50, 30, 20, 10, 5, 2, 1];
    for v in val {
        result += a / v;
        a = a % v;
    }
    result
}
